/**
 * Created by oscar-yang on 2016/1/5.
 */
angular.module('admin.menu', [
    'services.crud'
    , 'menu'
])
// 配置文件
.config(['crudRouteProvider','$stateProvider', function (crudRouteProvider, $stateProvider) {

    crudRouteProvider.routesFor('menu', 'admin')
        .whenList()
    //.whenNew()
    //.whenEdit();
}])
// 工厂方法
.factory('adminMenu', ['$timeout', '$q', 'rpc', 'menu', 'PRE_FIX', function ($timeout, $q, rpc, menu, PRE_FIX) {

    return {
        // 保存用户菜单
        saveCustomMenu : function (treeNode) {
            return rpc.setParam(treeNode)
               .post(PRE_FIX.FRAMEWORK + '/admin/menu/update').then(function (response) {
                    return response;
               });
        }

        , getCustomMenu : function () {
            var delay = $q.defer();
            $timeout(function () {
                if (menu.currentMenu) {
                    delay.resolve(menu.currentMenu);
                } else {
                    delay.reject(null);
                }
            }, 500);
            return delay.promise;
        }
    };
}])

//控制器
.controller('menuListCtrl', ['$scope', 'adminMenu', function ($scope, adminMenu) {
    // 传递菜单对象
    adminMenu.getCustomMenu().then(function (data) {
        $scope.zNodes = data;
    });

    // 保存功能
    $scope.processForm = function () {
        if ($scope.selectedNode) {
            if ($scope.selectedNode.isNew) {
                // 调用增加
                alert('调用增加');
            } else {
                // 调用修改
                alert('调用修改');
                //adminMenu.saveCustomMenu($scope.selectedNode).then(function (data) {
                //    //console.info($scope.zNodes);
                //});
            }
        }
    };


    $scope.addNewNode = function () {
        console.info($scope.newNode);
    };

}]);

